package com.javasea.web.actuator.endpoint;

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.SimpleFormatter;

/*
* http://localhost:8082/actuator/datetime
* 自定义端点类
* @Endpoint //表示这是一个自定义事件端点类
* Endpoint 中有一个id //它是设置端点的URL路径
* */
@Endpoint(id="datetime") //端点路径不要与系统自带的重合
public class DateTimeEndpoint {
    //一般端点都是对象，或者一个json返回的格式，所以通常我们会将端点定义一个MAP的返回形式
    // 通过ReadOperation
    //访问地址是根据前缀+ endpoint 的ID
    // /Springboot-caicai/actuator/datetime
      private String format = "yyyy-MM-dd HH:mm:ss";

      @ReadOperation //显示监控指标
      public Map<String,Object> info(){
          Map<String,Object> info  = new HashMap<>();
           info.put("name","longye");
           info.put("address","幸福路1号");
           info.put("datetime",new SimpleDateFormat(format).format(new Date()));
           return info;
      }
      //动态修改指标
    @WriteOperation //动态修改指标，是以post方式修改
    public void setFormat(String format){
          this.format = format;

    }

}
